package priv.conceit.sc.hoxton.interior.client;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import priv.conceit.sc.hoxton.common.entity.auth.authority.dto.CurrentUserInfoDTO;
import priv.conceit.sc.hoxton.common.web.WebResponse;
import priv.conceit.sc.hoxton.common.web.feign.ErrorDecoderConfig;
import priv.conceit.sc.hoxton.common.web.feign.TokenInterceptor;
import priv.conceit.sc.hoxton.interior.fallback.AuthClientFallback;

import javax.validation.constraints.NotBlank;

/**
 * sc-hoxton AuthClient
 *
 * @author Conceit
 * @since 1.0.0, 2020/11/12
 */
@FeignClient(name = "sc-hoxton-auth", configuration = {TokenInterceptor.class, ErrorDecoderConfig.class},fallback = AuthClientFallback.class)
public interface AuthClient {

	/**
	 * tokenVerify  验证token,并返回用户认证信息
	 *
	 * @param token
	 * @return priv.conceit.sc.hoxton.common.web.WebResponse
	 * @author conceit
	 * @date 2020/11/3 16:29
	 */

	@GetMapping("/authority/user/token/verify/{token}")
	WebResponse<CurrentUserInfoDTO> authorityUserTokenVerify(@NotBlank @PathVariable String token);



}
